# 单个管道脚本 - 实现移动和碰撞检测
extends StaticBody2D

# 管道移动速度
@export var speed: float = 200.0

# 管道是否已经通过小鸟（用于得分）
var has_passed_bird: bool = false

func _ready():
	# 将管道添加到管道组中，便于管理
	add_to_group("pipes")

func _physics_process(_delta):
	# 单个管道不需要移动，移动由PipePair控制
	pass

func _on_body_entered(body):
	# 当小鸟碰到管道时
	print("管道检测到碰撞，碰撞对象: ", body.name)
	if body.is_in_group("bird"):
		print("小鸟碰到管道！")
		# 通知小鸟死亡，而不是直接调用game_over
		# 让小鸟自己处理死亡逻辑
		if body.has_method("die"):
			body.die()
	else:
		print("碰撞对象不是小鸟: ", body.name)

# 移除重复的得分逻辑，得分由PipePair.gd处理
# func _on_area_entered(area):
# 	# 当小鸟通过管道间隙时（用于得分）
# 	if area.is_in_group("bird") and not has_passed_bird:
# 		has_passed_bird = true
# 		# 通知游戏管理器得分
# 		get_tree().call_group("game_manager", "add_score", 1)
# 		print("通过管道，得分！")

# 暂停管道移动（由PipePair调用）
func stop_moving():
	# 单个管道不需要移动，所以这个方法可以为空
	# 但保留这个方法以保持接口一致性
	pass

# 恢复管道移动（由PipePair调用）
func resume_moving():
	# 单个管道不需要移动，所以这个方法可以为空
	# 但保留这个方法以保持接口一致性
	pass
